// pages/main/index.js
const app = getApp()
Page({

    /**
     * 页面的初始数据
     */
    data: {
        records: [],
        selectedPlayer: [],
        showLayer: false,

        userInfo: {},
        hasUserInfo: false,
        canIUse: wx.canIUse('button.open-type.getUserInfo'),
        canIUseGetUserProfile: false,
        canIUseOpenData: wx.canIUse('open-data.type.userAvatarUrl') && wx.canIUse('open-data.type.userNickName') // 如需尝试获取用户信息可改为false
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad() {
        this.setData({
            selectedPlayer: app.globalData.selectedPlayer
        })

        if (wx.getUserProfile) {
            this.setData({
                canIUseGetUserProfile: true
            })
        }
        const obj = wx.getStorageSync('_510k')
        if(obj) this.setData(obj)
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    },

    getUserProfile(e) {
        // 推荐使用wx.getUserProfile获取用户信息，开发者每次通过该接口获取用户个人信息均需用户确认，开发者妥善保管用户快速填写的头像昵称，避免重复弹窗
        wx.getUserProfile({
            desc: '展示用户信息', // 声明获取用户个人信息后的用途，后续会展示在弹窗中，请谨慎填写
            success: (res) => {
                console.log(res)
                this.setData({
                    userInfo: res.userInfo,
                    hasUserInfo: true
                })
            }
        })
    },
    getUserInfo(e) {
        // 不推荐使用getUserInfo获取用户信息，预计自2021年4月13日起，getUserInfo将不再弹出弹窗，并直接返回匿名的用户个人信息
        console.log(e)
        this.setData({
            userInfo: e.detail.userInfo,
            hasUserInfo: true
        })
    },
    handleToggleScoring() {
        this.setData({
            showLayer: !this.data.showLayer
        })
    },
    back() {
        if(!this.data.records.length) return

        const _this = this
        wx.showModal({
            title: '询问',
            content: '确定回滚吗？',
            success(res) {
                if (res.confirm) {
                    const selectedPlayer = JSON.parse(JSON.stringify(_this.data.selectedPlayer))
                    const records = _this.data.records.slice(1);
                    if (records.length) {
                        selectedPlayer[0].score = records[0][1]
                        selectedPlayer[1].score = records[0][2]
                    } else {
                        selectedPlayer[0].score = 0
                        selectedPlayer[1].score = 0
                    }

                    _this.setData({
                        records,
                        selectedPlayer
                    })
                }
            }
        })
    },
    onScore(e) {
        const dx = e.currentTarget.dataset.param
        this.data.selectedPlayer[dx].current = e.detail.value || 0
    },
    submit() {
        const selectedPlayer = JSON.parse(JSON.stringify(this.data.selectedPlayer))
        selectedPlayer.forEach(val => {
            val.score += parseInt(val.current)
            val.current = 0;
        })

        const records = this.data.records
        const record = [records.length + 1 , selectedPlayer[0].score, selectedPlayer[1].score]
        const obj = {
            selectedPlayer,
            records: [record, ...records]
        }
        this.setData(obj)

        app.globalData.selectedPlayer = selectedPlayer
        wx.setStorageSync('_510k', obj)
        this.handleToggleScoring()
    }
})